
<?=$this->headTitle("Все комментарии");?>

<?= $this->JQuery()
    ->addJavaScriptFile($this->baseUrl('js/wysibb/jquery.wysibb.min.js'))
    ->addJavaScriptFile($this->baseUrl('js/jquery/js/jquery.comments.js'))
    ->addStylesheet($this->baseUrl('js/wysibb/theme/default/wbbtheme.css'));
?>

<script type="text/javascript">
$(function(){

    var tr,position,pageCont,contH,commNext,commPrev;
    var commtitle = $('.commtitle');
    var artconttr = $('#articles-container tbody tr');
    var artcontbody = $('#articles-container tbody');
    var trLen = artconttr.length;
    var artCount = artcontbody.find('tr').not('.emptyRow').length;
    var pagination = $('#pagination');

    if(trLen < 10){

        var trCont = $('<tr>',{'class':'emptyRow ui-widget-content',style:'display: table-row;height:32.4px'});
        var Check = $('<input>',{type:'checkbox',disabled:'disabled'});
        var tdB = $('<td>',{'class':'ui-widget-content',style:'width:21px'}).append(Check);
        var tdA = $('<td>',{'class':'ui-state-default jqgrid-rownum',style:'width:30px;text-align:center'});
        var tdC = $('<td>');
        var tdD = $('<td>',{style:'width:100px'});
        trCont.append(tdA,tdB,tdC,tdD);
        artcontbody.append(trCont);
        if(trLen == 0 ){
            for(var i=1;i < 10;i+=1){
                artcontbody.find('tr:first').clone().appendTo(artcontbody);
            }
            pagination.empty();
        }else{
            for(trLen;trLen < 9;trLen++){
                artcontbody.find('tr:last').clone().appendTo(artcontbody);
            }
        }
    }

    for(var i=0;i < commtitle.length;i++ ){
        if($(commtitle[i]).text() == ''){
            $(commtitle[i]).text('Статья была удалена, ID '+$(artconttr[i]).attr('id'))
        }
    }
    var check = $('input[name=check]').not('[disabled=disabled]');
    var checkLen = check.length;
    $('input[name=allcheck]').click(function(){

            for(var i=0;i < checkLen;i++){
                if($(check[i]).parent().parent().css('display') != 'none'){
                if($(check[i]).attr('checked')){
                    $(check[i]).removeAttr('checked');
                }else{$(check[i]).attr('checked','checked');}
            }
        }
    });

    $('#delButton').button({icons:{primary: "ui-icon-trash"}}).click(function(){
        var inpCont = [];
        var countCheck = check.length;

           for(var i=0;i < countCheck;i+=1){
               if($(check[i]).attr('checked') == 'checked'){

                  inpCont +=$(check[i]).val()+',';

               }
           }
        if(inpCont.length > 1){

            var idCont = [];
            idCont = inpCont.substring(0,inpCont.length-1);
            confirmDel('Подтверждение','Вы уверенны что хотите удалить комментарии ?',$(this),idCont);
            idCont = null;
        }else{message({title:'Предупреждение',text:'Не выбраны запись(и)',position:[560,200]});}
    });

    $('.commtitle,.commcount').click(function(){

        var opt = {artTitle:$(this).parent().parent().find('.commtitle').text(),'parentdiv':'#articles-container','childdiv':'#articles-container','progressStyleTop':'250px'};
        $($(this)).comments(opt);
    });
    $('#articles-container').find('td.rownum').each(function(i,elm){
        $(elm).text(++i);
    });
    tr = $('#articles-container tbody tr');

    $('#totalartcomm').append('Всего статей с комментариями:');

    $('#totalcount').append(artCount);

    if(trLen > 10){
        for(var p = 10;p < tr.length;p++){
            $(tr[p]).hide();
        }
            var pagecount = Math.ceil(tr.length/10);
            var pageCont = $('#pagination div');
            for(var p = 1;p <= pagecount;p++){
                var segment = $('<span>',{class:'current_page','style':'font-size:10px;'});
                pageCont.append(segment.text(p).attr('id',p));

                if(p == pagecount){
                   var prev = $('<span>',{id:'prev','class':'commpage_prev',text:'<< Пред.',style:'font-size:8px;height:15px;padding-left:10px;cursor:pointer'});
                   var next = $('<span>',{id:'next','class':'commpage_next',text:'След. >>',style:'font-size:8px;height:15px;padding-left:10px;cursor:pointer'});
                   pageCont.prepend(prev);
                   pageCont.append(next);
                }
            }
        $('#totalpages').text('Всего страниц: '+$('#contpager .current_page, .active_page').length);

    }
    if(trLen > 50){
        var pagesCont = $('#contpager');
        var pages = pagesCont.find('span.current_page');
        if(pages.length > 5){
            for(var i = 5;i <= pages.length;i++){
                $(pages[i]).hide();
            }
        }
    }

    $('#contpager').find('span:first').next().attr('class','active_page');

    pageCont = $('#contpager span').click(function(){
        clickHandler($(this).attr('id'));
    });

    commNext = $('.commpage_next').click(function(){
        var p = $('#contpager span.active_page');
        if(p.next().attr('class') == 'current_page'){
            p.next().click();
        }
    });
    commPrev = $('.commpage_prev').click(function(){
            var p = $('#contpager span.active_page');
            if(p.prev().attr('class') == 'current_page'){
                p.prev().click();
            }
    });
});
    function deleteComm(artid){
        var check = $('input[name=check]');
        var allcheck = document.getElementsByName('allcheck')[0];
        if(allcheck.hasAttribute('checked')){$(allcheck).removeAttr('checked');}
        if(check.attr('checked') == 'checked'){$(check).removeAttr('checked');}
        console.log(artid);
        if(artid.length > 0){
            var totalCount = [];
            var deleteTr = [];
            var post = $.post('/admin/comments/comment-delete',{id:artid,oper:'del',artid:true},function(res){
               // if(res.oper == 'oper_success'){

                    message({title:'Удаление',text:'Удаление комментариев со статьй(статей) прошло успешно.',position:[550,200]});
                    var delRow = artid.split(',');
                    totalCount = parseInt($('#totalcount').text());
                    var max = delRow.length;
                    for(var i= 0;i <= max;i++){

                        deleteTr.push($('tr#'+delRow[i]).remove());

                        totalCount = totalCount-1;

                            if(i === max){
                                var emptyRow = $('#articles-container tbody tr.emptyRow').length;
                                var trcount = $('#articles-container tbody tr.article').length;

                                reloadTable(trcount,emptyRow,deleteTr);
                            }
                    }
               // }
            },'JSON');
        }
    }
    function message(options){
        if(options instanceof  Object){
            var settings = $.extend({
                title:'Подтверждение',
                text:'Удаление записи(ей)',
                position:[550,200],
                color:'#555555',
                height:140
            },options);

        var mes = $('<div>',{'title':settings.title,'text':settings.text,style:"text-align:center;padding:15px;color:#555555"});
            $(mes).dialog({
                resizable: false,
                height:settings.height,
                modal: true,
                position:[settings.position[0],settings.position[1]],
                buttons:{
                    "Закрыть":function(){$(this).dialog('close');}
                },
                open: function(){
                    $(this).parent().find('.ui-dialog-buttonpane button:first-child').button({
                        icons: { primary: 'ui-icon-circle-close' }
                    });
                }
            });
        }
    }
    function confirmDel(title,text,tar,cid){

        var target = tar;
        $('<div>',{id:'confirm',title:title,text:text,style:'padding:20px;text-align:center;'}).dialog({
            resizable: false,
            height:160,
            right:300,
            modal: true,
            position:[550,200],
            buttons:{
                "Удалить":function(){deleteComm(cid);$(this).dialog('close');cid = undefined;},
                "Закрыть":function(){$(this).dialog('close').remove();}
            },
            open: function(){
                $(this).parent().find('.ui-dialog-buttonpane button:first-child').button({
                    icons: { primary: 'ui-icon-trash' } }),
                    $(this).parent().find('.ui-dialog-buttonpane button:last-child').button({
                        icons: { primary: 'ui-icon-circle-close' }
                    });
            }
        });

    }
    function clickHandler(pid){
        var allcheck = document.getElementsByName('allcheck')[0];
        var check = document.getElementsByName('check');
        if(check[0].checked){$(check).removeAttr('checked');}
        if($(allcheck).attr('checked')){$(allcheck).removeAttr('checked');}
       var cont = $('#contpager span.current_page, .active_page');
       if(pid > 5){
           var page = pid - 5;
           $('#contpager span#'+page).hide();
       }else{
           var page  = (pid-1)+5;
           $(cont[page]).hide();
       }
        if(pid !='prev' && pid != 'next'){
        var pageStart = (pid * 10)-10;
        var pageEnd = pageStart + 10;
        var tr = $('#articles-container tbody tr');
        var trLen = tr.length;
        var pagin = $('#pagination');
        var contpager = $('#contpager span.current_page');
        var lastP = $('#contpager span.commpage_next').prev();
        pagin.find('span.active_page').attr('class','current_page');
        pagin.find('span#'+pid).attr('class','active_page').show();

            if(pageStart > 0){

                for(var i = 0;i < pageStart;i++){
                    $(tr[i]).hide();
                }
                for(var i=pageStart;i < pageEnd;i++){

                        if(!$(tr[i]).attr('id')){
                            var tr = $('<tr>',{id:i,'class':'emptyRow ui-widget-content',style:'display: table-row;height:32.4px'});
                            var Check = $('<input>',{type:'checkbox',disabled:'disabled'});
                            var tdB = $('<td>',{'class':'ui-widget-content',style:'width:21px'}).append(Check);
                            var tdA = $('<td>',{'class':'ui-state-default jqgrid-rownum',style:'width:30px;text-align:center'});
                            var tdC = $('<td>');
                            var tdD = $('<td>',{style:'width:100px'});
                            tr.append(tdA,tdB,tdC,tdD);
                            $('#articles-container tbody ').append(tr);
                        }else{
                            $(tr[i]).show();
                        }
                }
                for(var i = pageEnd;i < trLen;i++){
                    $(tr[i]).hide();
                }
            }else{
                for(var i = pageStart;i < pageStart+10;i++){
                    $(tr[i]).show();
                }
                for(var i = 10;i < trLen;i++){
                    $(tr[i]).hide();
                }
            }
        }
}
function recountIndex(artCont){
    artCont.find('td.rownum').each(function(i,elm){
        $(elm).text(++i);
    });
}
function reloadTable(trc,emptyrow,countdel){
    $('#totalcount').empty().text(trc);

    var countDelete=0;
    for(var i=0;i < countdel.length;i++){
        if($(countdel[i]).attr('id')){
             countDelete +=1;//Кол-во удаленных строк
        }
    }

    var articlesCount = trc;//остаток статей после удаления
    var emptyRows = emptyrow;//Кол-во пустых строк в текущей стр

    var sumDeleteEmpty = emptyRows+countDelete;

    //Закешированные данные
    var contPager = $('#contpager');
    var first = contPager.find('span#1')
    var prev = contPager.find('#prev')
    var next = contPager.find('#next');
    var activePage = contPager.find('.active_page');
    var pagesCount =  contPager.find('.current_page, .active_page').length;
    var lastPage = next.prev();
    var emptyRowsCont = $('.emptyRow');
    var artCont = $('#articles-container');



    var emptyArtCount = emptyRows+articlesCount;
    var artTbody = $('#articles-container tbody');

    //console.log("sumDeleteEmpty : ",sumDeleteEmpty);
    //console.log("articlesCount : ",articlesCount);
    //console.log("emptyRows: ",emptyRows);
    //console.log("countDelete: ",countDelete);
    //console.log("activePage",activePage);
    //console.log("pagesCount: ",pagesCount);
    //console.log("lastPage: ",lastPage);

  if(articlesCount == 0 && emptyRows < 10){
      //console.info("самый нулевой IF ");
      var tr = $('<tr>',{'class':'emptyRow ui-widget-content',style:'display: table-row;height:32.4px'});
      var Check = $('<input>',{type:'checkbox',disabled:'disabled'});
      var tdB = $('<td>',{'class':'ui-widget-content',style:'width:21px'}).append(Check);
      var tdA = $('<td>',{'class':'ui-state-default jqgrid-rownum',style:'width:30px;text-align:center'});
      var tdC = $('<td>');
      var tdD = $('<td>',{style:'width:100px'});
      tr.append(tdA,tdB,tdC,tdD);
      artTbody.append(tr);
        emptyRowsCont.show();
      for(var i=emptyArtCount;i < 9;i++){
          artTbody.find('tr:first').clone().appendTo(artTbody);
      }
      $('input[name=allcheck]').attr('disabled','disabled').removeAttr('checked');
      $('#delButton').button({disabled:true});
  }else if(articlesCount < 10 && emptyRows < 10 && pagesCount > 1 && activePage.attr('id') == 1){
      //console.info(" еще один IF ");
      next.click();
      prev.click();
      contPager.remove();
  }
  else if(articlesCount == 0 && emptyRows == 10){
      //console.info("нулевой IF ");
      emptyRowsCont.show();
  }else if(articlesCount < 10 && sumDeleteEmpty >= 10 && pagesCount == 0){
      //console.info("else if 2");
      var max = 10-articlesCount;
      for(var i=0;i< max;i++){
          $(emptyRowsCont[i]).show();
      }
  }
  else if(articlesCount <= 10 && emptyArtCount >= 10){
      //console.info("просто ELSE IF ");
      first.click();
      contPager.remove();
  }
  else if(articlesCount <=10 && pagesCount == 0 && emptyArtCount < 10){
          //  console.info("самый первый IF ");
            emptyRowsCont.show();
            for(var i=emptyArtCount;i < 10;i++){
                artTbody.find('tr:last').clone().appendTo(artTbody);
            }
  }else if(articlesCount < 10 && emptyArtCount >= 10){
      //console.info("первый IF ");
      lastPage.click();
      first.click();
      emptyRowsCont.show();
      contPager.remove();
  }

  else if(articlesCount > 10 && emptyRowsCont >= 10){
            //Если кол-во удаляемых 10 и кол-во страниц больше 1
        //    console.info("ELSE IF первого IF ");

                $('.emptyRow').remove();
                var pageNum = pagesCount - 5;
                $('#contpager span#'+pageNum).show();
                prev.click();
                lastPage.remove();

        }else if(articlesCount > 10 && pagesCount > 1 && activePage.attr('id') != lastPage.attr('id')){
            //Если удаляемых меньше 10 и кол-во стр. боль УдалитьarticlesCount Всего статей с комментариямише 1
            //console.info("Второй ELSE IF первого IF");
            lastPage.click();
            var dynCountEmptyRows = $('.emptyRow');
            activePage.click();

            if(dynCountEmptyRows.length >= 10){
              //  console.info("IF внутри ELSE IF первого IF второго ELSE IF");
                //Если на послед. стр. + кол-во удаляемых >=10 то,удаляем пустышки
                dynCountEmptyRows.remove();
                var pageNum = pagesCount - 5;
                $('#contpager span#'+pageNum).show();
                lastPage.remove();
                activePage.click();
                var pageNum = pagesCount - 5;
                $('#contpager span#'+pageNum).show();
            }

        }else if(articlesCount > 10 && pagesCount > 1 && emptyRows > 10){
            //console.info("третий ELSE IF первого IF");

            var empty = $('.emptyRow');
            for(var i=1;i <= countDelete;emptyRows++){

            }
            empty.show();
        }else if(activePage.attr('id') == lastPage.attr('id') && sumDeleteEmpty >= 10){
          //  console.info("Если на последней стр. и пустышек >=10 ,то удаляем посл. стр. и пустышки");
            var pageNum = pagesCount - 5;
            $('#contpager span#'+pageNum).show();
            prev.click();
            lastPage.remove();
            emptyRowsCont.remove();
        }else if(activePage.attr('id') == lastPage.attr('id') && sumDeleteEmpty < 10){
            //console.info("Посл else if");
            prev.click();
            activePage.click();
        }else if(activePage.attr('id') == 1 && countDelete == 10 && articlesCount < 10){
            lastPage.click();
            activePage.click();
            lastPage.remove();
            contPager.remove();

        }else if(sumDeleteEmpty == 10 && pagesCount == 0 && articlesCount < 10){
            alert('ok');
        }
    var totalP = $('#contpager #next').prev().attr('id');
    if(totalP){$('#totalpages').empty().text('Всего страниц: '+totalP);}
    else{$('#totalpages').empty().text('Всего страниц: 1');}

    recountIndex($('#articles-container'));
    }
</script>

<div id="articles-container"  class="ui-widget"  style="float:left;">
    <table>
        <thead>
            <tr class="ui-widget-header ">
                <th>№</th>
                <th style="width:21px"><input type="checkbox"  name="allcheck"></th>
                <th>Статья</th>
                <th>Комментариев</th>
            </tr>
        </thead>
        <tbody>
                <?php if(count($this->data)):?>
                <?php foreach($this->data as $d):?>
                <tr id="<?=$d['article_id']?>" class="article ui-widget-content">

                    <td class="rownum ui-state-default jqgrid-rownum" style="width:30px;text-align:center;"></td>
                    <td style="width:21px"><input name="check" type="checkbox" value="<?=$d['article_id']?>"></td>
                    <td><span id="<?=$d['article_id']?>" class="commtitle"><?=$d['title']?></span></td>
                    <td style="width:100px;text-align:center;font-weight:bold;"><span id="<?=$d['article_id']?>" class="commcount"><?=$d['commcount']?></td>
                </tr>
                <?php endforeach;?>
                <?php endif;?>
        </tbody>

    </table>
    <div id="pagination" class="ui-state-default ui-jqgrid-pager ui-corner-bottom">
            <span id = "delButton" title="Удаление комментариев" style="float:left;padding:0px 0 0px 3px;margin:1px 0 0 50px;border-radius:2px;">Удалить</span>
            <span id = "totalartcomm" style="float:left;padding:4px 10px 0 50px;"></span>
            <span id="totalcount" style="float:left;padding:4px;"></span>
            <span id = "totalpages" style="float:right;padding:4px 250px 0 0;"></span>
            <div id="contpager" style="padding:0;margin:4px 0 0 200px;;width:200px"></div>
    </div>
</div>
